

/*
 * File:   oef2.cpp
 * Author: Jonas Delrue
 *
 * Created on February 8, 2010, 11:48 AM
 */

#include <stdlib.h>
#include <iostream>
#include <vector>
#ifndef _VECTORHULP_H
#define    _VECTORHULP_H
/*
 *
 */
using namespace std;

class VectorHulp{
public:
    template <class T>
    static void print(vector<T> & v){
        int size = v.size();
        for(int i=0;i<size;i++){
            cout<<v[i]<<" ";

        }
        cout<<endl;
    }

    //maak_range(n, vi): vult een vector vi op met getallen 0..n-1 in volgorde
    template <class T>
    static void maak_range(int n, vector<T> & v){
        int size = v.size();
        for(int i=0;i<n;i++){
            v.push_back(i);
        }
    }
    //vul_random(v, min, max): vul v met random getallen tussen min en max. Je kunt een versie voor int en voor double maken.

    static void vul_random(vector<int> &v,int min, int max){
        srand((unsigned)time(0));
        max--; //dont include the last number in result (definition of "between")
        int range = (max - min) + 1;


        int size = v.size();
        for(int i=0;i<size;i++){
           v[i]=min + int((double)range * rand() / (double)(RAND_MAX + 1.0));
        }
    }

    template <class T>
    static bool is_stijgend(vector<T> v){
         int ret = true;

         for(int i=0;i<v.size()-1;i++){
                 if(!(v[i]<=v[i+1])){
                     ret=false;
                 }
         }
         return ret;

    }
    template <class T>
    static bool is_strikt_stijgend(vector<T> v){
         int ret = true;

         for(int i=0;i<v.size()-1;i++){
                 if(!(v[i]<v[i+1])){
                     ret=false;
                 }
         }
         return ret;

    }



    template <class T>
    static void draai_om(vector<T> &v){
         vector<T> turned;
          for(int i=(v.size()-1);i>=0;i--){
                  turned.push_back(v[i]);
          }
          v=turned;
    }




//int main(int argc, char** argv) {

//    vector<int> v;
//    v.resize(10);
//    vul_random(v,5,10);
//    print(v);

//    return (EXIT_SUCCESS);
//}
};
#endif    /* _VECTORHULP_H */




